<?php

    class CrearGolController
    {
        var $idPartido;
        var $equipos;
        var $gol;
        var $errs;

        function CrearGolController()
        {
            // Solo admins
            Session::onlyAdmins();

            $this->gol = new Gol();
            $this->gol->idEquipo = -1;
            $this->gol->esAutogol = 'false';
            $this->errs = array();
            $this->equipos = array();

            $this->parseGets();
            if (!$this->validateGets()) return;

            $partido = PartidosDAO::getById($this->idPartido);

            if ($partido == null)
            {
                $this->errs[] = "El partido no existe.";
                return;
            }

            if ($partido->estado != 2 && $partido->estado != 4 && $partido->estado != 6)
            {
                $this->errs[] = "El partido no se encuentra en el 1er o 2do tiempo ni en penales.";
                return;
            }

            $this->equipos = Array($partido->getEquipoLocal(), $partido->getEquipoVisita());


            // Map
            $this->gol->tiempo = $partido->getTiempo();
            $this->gol->idPartido = $partido->idPartido;


            if ($_SERVER["REQUEST_METHOD"] == "POST")
            {
                $this->parseForm();
                if (!$this->validatePosts()) return;

                // Agregar
                if (PartidosLogic::addGol($this->gol))
                    header("Location: index.php?action=detallepartido&idPartido=".$this->idPartido);
                else
                {
                    $this->errs[] = "No se pudo agregar el gol.";
                    return;
                }
                    
            }
        }

        function parseGets()
        {
            $this->idPartido = Form::get('idPartido');
        }


        function parseForm()
        {
            $this->gol->idEquipo = $_POST['idEquipo'];
            $this->gol->idJugador = $_POST['idJugador'];
            $this->gol->minuto = $_POST['minuto'];

            if (Form::getPost('esAutogol') == 'esAutogol')
            {
                $this->gol->esAutogol = 'true';
            }
            else
            {
                $this->gol->esAutogol = 'false';
            }
                
        }

        function validateGets()
        {
            if ($this->idPartido == '')
                    $this->errs[] = "Id vacio";

            if (!is_numeric($this->idPartido))
                    $this->errs[] = "El idPartido debe ser numerico";

            return (sizeof($this->errs) == 0);
        }

        function validatePosts()
        {

            if ($this->gol->idEquipo == -1 || $this->gol->idEquipo == '')
                    $this->errs[] = "Debe especificar el equipo";

            if ($this->gol->idJugador == -1 || $this->gol->idJugador == '')
                    $this->errs[] = "Debe especificar el jugador";

            if ($this->gol->tiempo !== 1 && $this->gol->tiempo !== 2 && $this->gol->tiempo !== 3)
                    $this->errs[] = "El tiempo debe ser 1, 2, o penales";

            if (!is_numeric($this->gol->tiempo))
                    $this->errs[] = "El tiempo debe ser numerico";

            if (!is_numeric($this->gol->minuto))
                    $this->errs[] = "El minuto debe ser numerico";

            if ($this->gol->minuto < 0)
                    $this->errs[] = "El minuto debe ser mayor que cero";




            return (sizeof($this->errs) == 0);
        }
    }

?>